[INFO] fetching crate bsa 0.2.1...
[INFO] checking bsa-0.2.1 against master#82310651b93a594a3fd69015e1562186a080d94c for pr-145770
[INFO] extracting crate bsa 0.2.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate bsa 0.2.1
[INFO] finished tweaking crates.io crate bsa 0.2.1
[INFO] tweaked toml for crates.io crate bsa 0.2.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate bsa 0.2.1 on toolchain 82310651b93a594a3fd69015e1562186a080d94c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate bsa 0.2.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded libflate v1.1.1
[INFO] [stderr]   Downloaded libflate_lz77 v1.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5954a85af1f1a2d002e05fa5a5f3287b7785c5ec153b4c6de1e612b5279d18d7
[INFO] running `Command { std: "docker" "start" "-a" "5954a85af1f1a2d002e05fa5a5f3287b7785c5ec153b4c6de1e612b5279d18d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5954a85af1f1a2d002e05fa5a5f3287b7785c5ec153b4c6de1e612b5279d18d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5954a85af1f1a2d002e05fa5a5f3287b7785c5ec153b4c6de1e612b5279d18d7", kill_on_drop: false }`
[INFO] [stdout] 5954a85af1f1a2d002e05fa5a5f3287b7785c5ec153b4c6de1e612b5279d18d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+82310651b93a594a3fd69015e1562186a080d94c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9dbaf65b4db252e4c5aeea17ce806c348489bc12555601272adc7183fbc7f683
[INFO] running `Command { std: "docker" "start" "-a" "9dbaf65b4db252e4c5aeea17ce806c348489bc12555601272adc7183fbc7f683", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.29
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling serde v1.0.130
[INFO] [stderr]    Compiling cc v1.0.71
[INFO] [stderr]    Compiling libc v0.2.103
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]     Checking rle-decode-fast v1.0.1
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking adler32 v1.2.0
[INFO] [stderr]     Checking libflate_lz77 v1.1.0
[INFO] [stderr]     Checking libflate v1.1.1
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]    Compiling lz4-sys v1.9.2
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling enumflags2_derive v0.7.0
[INFO] [stderr]    Compiling bytemuck_derive v1.0.1
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking bytemuck v1.7.2
[INFO] [stderr]    Compiling thiserror v1.0.30
[INFO] [stderr]    Compiling proc-macro-crate v1.1.0
[INFO] [stderr]     Checking enumflags2 v0.7.1
[INFO] [stderr]    Compiling num_enum_derive v0.5.4
[INFO] [stderr]     Checking num_enum v0.5.4
[INFO] [stderr]     Checking lz4 v1.23.2
[INFO] [stderr]     Checking bsa v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0412]: cannot find type `BsaDirSource` in this scope
[INFO] [stdout]    --> src/v103.rs:171:48
[INFO] [stdout]     |
[INFO] [stdout] 171 |     fn check_write_read_identity_bsa(dirs: Vec<BsaDirSource<Vec<u8>>>) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `BsaDirSource` in this scope
[INFO] [stdout]    --> src/v104.rs:182:48
[INFO] [stdout]     |
[INFO] [stdout] 182 |     fn check_write_read_identity_bsa(dirs: Vec<BsaDirSource<Vec<u8>>>) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `BsaDirSource` in this scope
[INFO] [stdout]    --> src/v105.rs:162:48
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn check_write_read_identity_bsa(dirs: Vec<BsaDirSource<Vec<u8>>>) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dir`
[INFO] [stdout]   --> src/v103.rs:75:24
[INFO] [stdout]    |
[INFO] [stdout] 75 |     use crate::write::{Dir, test::*};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dir`
[INFO] [stdout]   --> src/v104.rs:79:24
[INFO] [stdout]    |
[INFO] [stdout] 79 |     use crate::write::{Dir, test::*};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Dir`
[INFO] [stdout]   --> src/v105.rs:60:24
[INFO] [stdout]    |
[INFO] [stdout] 60 |     use crate::write::{Dir, test::*};
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::File`
[INFO] [stdout]    --> src/v001.rs:258:29
[INFO] [stdout]     |
[INFO] [stdout] 258 |         assert_eq!(files[0].hash, Hash::v001("a\\b"), "files[0].hash");
[INFO] [stdout]     |                             ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 258 |         assert_eq!(files[0].id.hash, Hash::v001("a\\b"), "files[0].hash");
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::File`
[INFO] [stdout]    --> src/v001.rs:259:29
[INFO] [stdout]     |
[INFO] [stdout] 259 |         assert_eq!(files[0].name, Some("a\\b".to_owned()), "files[0].name");
[INFO] [stdout]     |                             ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 259 |         assert_eq!(files[0].id.name, Some("a\\b".to_owned()), "files[0].name");
[INFO] [stdout]     |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::Dir`
[INFO] [stdout]    --> src/v103.rs:181:31
[INFO] [stdout]     |
[INFO] [stdout] 181 |         assert_eq!(in_dirs[0].hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 181 |         assert_eq!(in_dirs[0].id.hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::Dir`
[INFO] [stdout]    --> src/v103.rs:182:31
[INFO] [stdout]     |
[INFO] [stdout] 182 |         assert_eq!(in_dirs[0].name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 182 |         assert_eq!(in_dirs[0].id.name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::File`
[INFO] [stdout]    --> src/v103.rs:183:40
[INFO] [stdout]     |
[INFO] [stdout] 183 |         assert_eq!(in_dirs[0].files[0].hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 183 |         assert_eq!(in_dirs[0].files[0].id.hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::File`
[INFO] [stdout]    --> src/v103.rs:184:40
[INFO] [stdout]     |
[INFO] [stdout] 184 |         assert_eq!(in_dirs[0].files[0].name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 184 |         assert_eq!(in_dirs[0].files[0].id.name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::Dir`
[INFO] [stdout]    --> src/v104.rs:192:31
[INFO] [stdout]     |
[INFO] [stdout] 192 |         assert_eq!(in_dirs[0].hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 192 |         assert_eq!(in_dirs[0].id.hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::Dir`
[INFO] [stdout]    --> src/v104.rs:193:31
[INFO] [stdout]     |
[INFO] [stdout] 193 |         assert_eq!(in_dirs[0].name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 193 |         assert_eq!(in_dirs[0].id.name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::File`
[INFO] [stdout]    --> src/v104.rs:194:40
[INFO] [stdout]     |
[INFO] [stdout] 194 |         assert_eq!(in_dirs[0].files[0].hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 194 |         assert_eq!(in_dirs[0].files[0].id.hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::File`
[INFO] [stdout]    --> src/v104.rs:195:40
[INFO] [stdout]     |
[INFO] [stdout] 195 |         assert_eq!(in_dirs[0].files[0].name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 195 |         assert_eq!(in_dirs[0].files[0].id.name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::Dir`
[INFO] [stdout]    --> src/v105.rs:172:31
[INFO] [stdout]     |
[INFO] [stdout] 172 |         assert_eq!(in_dirs[0].hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 172 |         assert_eq!(in_dirs[0].id.hash, Hash::v10x("a"), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::Dir`
[INFO] [stdout]    --> src/v105.rs:173:31
[INFO] [stdout]     |
[INFO] [stdout] 173 |         assert_eq!(in_dirs[0].name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 173 |         assert_eq!(in_dirs[0].id.name, Some("a".to_owned()), "in_dirs[0].name");
[INFO] [stdout]     |                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `hash` on type `read::File`
[INFO] [stdout]    --> src/v105.rs:174:40
[INFO] [stdout]     |
[INFO] [stdout] 174 |         assert_eq!(in_dirs[0].files[0].hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 174 |         assert_eq!(in_dirs[0].files[0].id.hash, Hash::v10x("b"), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `name` on type `read::File`
[INFO] [stdout]    --> src/v105.rs:175:40
[INFO] [stdout]     |
[INFO] [stdout] 175 |         assert_eq!(in_dirs[0].files[0].name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout] help: one of the expressions' fields has a field of the same name
[INFO] [stdout]     |
[INFO] [stdout] 175 |         assert_eq!(in_dirs[0].files[0].id.name, Some("b".to_owned()), "in_dirs[0].files[0].name");
[INFO] [stdout]     |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/v10x.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |             .map(|(dir, mut pdr)| {
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/v10x.rs:568:24
[INFO] [stdout]     |
[INFO] [stdout] 568 |             for (file, mut fr) in dir.files.iter().zip(&mut pfcr.data.files) {
[INFO] [stdout]     |                        ----^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/v10x.rs:516:25
[INFO] [stdout]     |
[INFO] [stdout] 516 |             .map(|(dir, mut pdr)| {
[INFO] [stdout]     |                         ----^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/v10x.rs:568:24
[INFO] [stdout]     |
[INFO] [stdout] 568 |             for (file, mut fr) in dir.files.iter().zip(&mut pfcr.data.files) {
[INFO] [stdout]     |                        ----^^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_with_param_many` is never used
[INFO] [stdout]    --> src/bin.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub trait ReadableParam<P>: VarSize + Sized {
[INFO] [stdout]     |           ------------- associated function in this trait
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn read_with_param_many<R: Read + Seek>(mut reader: R, num: usize, param: P) -> Result<Vec<Self>>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/hash.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | / /// The hash of a name inside a bsa archive.
[INFO] [stdout] 9  | | #[repr(C)]
[INFO] [stdout] 10 | | #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Zeroable, Pod)]
[INFO] [stdout] 11 | | pub struct Hash {
[INFO] [stdout] 12 | |     low: u32,
[INFO] [stdout] 13 | |     high: u32,
[INFO] [stdout] 14 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/hash.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Hash {
[INFO] [stdout]    |            ^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/v001.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / #[repr(C)]
[INFO] [stdout] 29 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 30 | | pub struct HeaderV001 {
[INFO] [stdout] 31 | |     pub offset_hash_table: u32,
[INFO] [stdout] 32 | |     pub file_count: u32,
[INFO] [stdout] 33 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/v001.rs:30:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct HeaderV001 {
[INFO] [stdout]    |            ^^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/v001.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | / #[repr(C)]
[INFO] [stdout] 48 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 49 | | struct FileRecord {
[INFO] [stdout] 50 | |     pub size: u32,
[INFO] [stdout] 51 | |     pub offset: u32,
[INFO] [stdout] 52 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/v001.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 49 | struct FileRecord {
[INFO] [stdout]    |        ^^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/v10x.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | / #[repr(C)]
[INFO] [stdout] 50 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 51 | | pub struct RawHeader {
[INFO] [stdout] 52 | |     pub offset: u32,
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |     pub padding: u16,
[INFO] [stdout] 60 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/v10x.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct RawHeader {
[INFO] [stdout]    |            ^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/v10x.rs:329:1
[INFO] [stdout]     |
[INFO] [stdout] 329 | / #[repr(C)]
[INFO] [stdout] 330 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 331 | | pub struct DirRecord {
[INFO] [stdout] 332 | |     pub name_hash: Hash,
[INFO] [stdout] 333 | |     pub file_count: u32,
[INFO] [stdout] 334 | |     pub offset: u32,
[INFO] [stdout] 335 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/v10x.rs:331:12
[INFO] [stdout]     |
[INFO] [stdout] 331 | pub struct DirRecord {
[INFO] [stdout]     |            ^^^^^^^^^ field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]    --> src/v10x.rs:340:1
[INFO] [stdout]     |
[INFO] [stdout] 340 | / #[repr(C)]
[INFO] [stdout] 341 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 342 | | pub struct FileRecord {
[INFO] [stdout] 343 | |     pub name_hash: Hash,
[INFO] [stdout] 344 | |     pub size: u32,
[INFO] [stdout] 345 | |     pub offset: u32,
[INFO] [stdout] 346 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/v10x.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub struct FileRecord {
[INFO] [stdout]     |            ^^^^^^^^^^ field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check` is never used
[INFO] [stdout]   --> src/v105.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | / #[repr(C)]
[INFO] [stdout] 11 | | #[derive(Debug, Clone, Copy, Zeroable, Pod)]
[INFO] [stdout] 12 | | pub struct RawDirRecord {
[INFO] [stdout] 13 | |     pub name_hash: Hash,
[INFO] [stdout] ...  |
[INFO] [stdout] 17 | |     pub _padding_post: u32,
[INFO] [stdout] 18 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/v105.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RawDirRecord {
[INFO] [stdout]    |            ^^^^^^^^^^^^ field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `&Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/bin.rs:229:1
[INFO] [stdout]     |
[INFO] [stdout] 229 | derive_writable_via_into_iter!(Option);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 219 -                 for a in self {
[INFO] [stdout] 219 +                 while let Some() =  in self {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 219 -                 for a in self {
[INFO] [stdout] 219 +                 if let Some() =  in self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0412, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0412`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `bsa` (lib test) due to 17 previous errors; 5 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "9dbaf65b4db252e4c5aeea17ce806c348489bc12555601272adc7183fbc7f683", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9dbaf65b4db252e4c5aeea17ce806c348489bc12555601272adc7183fbc7f683", kill_on_drop: false }`
[INFO] [stdout] 9dbaf65b4db252e4c5aeea17ce806c348489bc12555601272adc7183fbc7f683
